<?php

class UserDAO{

	/**
	 *
	 * @method Test
	 * Query Spiel (Zu_tippen + Ergebnis)"
	 * @param string $TippspielID
	 * @param int $TippNr
	 * @return Spiel $Spiel
	 */
	function get($ID) {

		$sql = sprintf(
			   "SELECT *
			      FROM T_User U
				  WHERE U.ID = %s",
				mysql_real_escape_string($ID));

		$sqlResult = mysql_query($sql)
				or die("MySqlError: [#".mysql_errno()."] ".mysql_error(). "<br>Sql: ".$sql);
		$row = mysql_fetch_assoc($sqlResult);

		$User = new User(
			$row["ID"],
			$row["Name"],
			$row["Vorname"],
			$row["Passwort"],
			$row["Benutzername"],
			$row["Email"],
			$row["Administrator"],
			$row["Status"]

		);

		return $User;
	}

	/**
	 *
	 * Insert or Update Ergebnis
	 * @param Spiel $Spiel
	 * @throws mysqli_sql_exception
	 */
	function saveErgebnis(Spiel $Spiel) {
		$sql;

		if (!isset($Spiel->ErgebnisNr))
		{
			$sql = sprintf(
							"INSERT INTO T_Ergebnis
								(TippspielID, TippNr, Ergebnis)
							 VALUES
								(%s,
								 %s,
								 '%s')",
							mysql_real_escape_string($Spiel->TippspielID),
							mysql_real_escape_string($Spiel->TippNr),
							mysql_real_escape_string($Spiel->Ergebnis));
		}
		else
		{
			$sql =  sprintf(
							"UPDATE T_Ergebnis
								SET Ergebnis = %s
							  WHERE TippspielID = %s
								AND TippNr = '%s'",
							mysql_real_escape_string($Spiel->Ergebnis),
							mysql_real_escape_string($Spiel->TippspielID),
							mysql_real_escape_string($Spiel->TippNr));
		}

		// @ verhindert, dass php exception behandelt
		$sqlResult =  @ mysql_query($sql);

		if(mysql_error != "")
		{
			$message = "MySqlError: [#".mysql_errno()."] ".mysql_error(). "<br>Sql: ".$sql;
			die($message);
			// TODO: Exception handling in controller einbauen.
			// TODO: In Produktionen keine Fehlermeldungen/sqls anzeigen - evtl. aber protokollieren?
			//throw new mysqli_sql_exception($message, $sql); //Exception(mysql_error(), $sql);
		}
	}
}

?>